#ifndef _TASK_OPTIONS_
#define _TASK_OPTIONS_

#include <string>
#include <node.h>
#include <node_object_wrap.h>

#include "udataset/mdb/CommonStruct.h"

using namespace std;
using namespace node;
using namespace v8;
using namespace FD::Utility::Dataset;

namespace freedatabase
{
class TaskOptions : public ObjectWrap
{
  public:
	static void Init(v8::Local<v8::Object> exports);
	FD::Utility::Dataset::Task GetTask() const { return task; }

  public:
	static void setTaskName(const FunctionCallbackInfo<Value> &args);
	static void setTaskID(const FunctionCallbackInfo<Value> &args);
	static void setParentTaskID(const FunctionCallbackInfo<Value> &args);
	static void setPlanS(const FunctionCallbackInfo<Value> &args);
	static void setPlanE(const FunctionCallbackInfo<Value> &args);
	static void setActualS(const FunctionCallbackInfo<Value> &args);
	static void setActualE(const FunctionCallbackInfo<Value> &args);
	static void setTaskType(const FunctionCallbackInfo<Value> &args);
	static void setGuid(const FunctionCallbackInfo<Value> &args);
	static void setTotalPrice(const FunctionCallbackInfo<Value> &args);
	static void setDesc(const FunctionCallbackInfo<Value> &args);
	static void setBActive(const FunctionCallbackInfo<Value> &args);
	static void setPercent(const FunctionCallbackInfo<Value> &args);

  private:
	explicit TaskOptions();
	~TaskOptions();

	static void New(const FunctionCallbackInfo<Value> &args);
	static Persistent<Function> constructor;

  private:
	FD::Utility::Dataset::Task task;
};
} // namespace freedatabase

#endif // !_CONNECTION_OPTIONS_
